Optimisation of the frame order models

Due to the numerical integration of the PCS, optimisation is extremely slow. A number of optimisation techniques can help speed up this part including using a low precision initial grid search, a zooming grid search, an alternating grid search, and zooming precision optimisation.

Low precision grid search

Using 10,000 Sobol' points appears to be the minimum while still delivering about 2-3 decimal places of accuracy for the frame order models (when values are not close to zero). But rather than using this number of points, 100 can be used in the initial grid search. This is not accurate enough from the parameter perspective, but is close enough to the real minimum (local or global, see section 12.3.2 on page [*]). This speeds up the calculation by two orders of magnitude.

The zooming grid search

This is implemented in relax rather than in the minfx optimisation library. As the grid search is parallelised to run on a cluster using OpenMPI, it can sometimes be advantageous to use a fine grid search to find a better optimisation starting position for the Nelder-Mead simplex algorithm. Rather than simply increasing the number of increments in the grid search, iteratively performing the grid search while zooming into the optimised parameter values is a more efficient alternative. This zooming grid search can be seen in the frame order optimisation script on page [*].

The alternating grid search

For finding the average domain position in the rigid frame order model, an alternating grid search has been implemented in the automated analysis protocol. The idea is to speed up the slow 6D grid search by first searching over the 3D rotational space, then the 3D translational space. The grid is then zoomed by one level and alternating grid search is repeated. As this technique does not guarantee convergence, it is not turned on by default. The results from the alternation should be carefully checked and the technique avoided if the average domain position is not reasonable.

Zooming precision optimisation

One trick is to perform an iterative optimisation whereby each iteration increases in precision. For this the function tolerance cutoff for optimisation is used. But the use of the amount of sampling through the Sobol' sequence can result in much greater speed ups. The reason is because each point in the Sobol' sequence requires a fixed amount of time to calculate the PCSs for all spins, so time is linearly correlated with the number of points.

Using synthetic CaM data found in test_suite/shared_data/frame_order/cam/, the ideal number of Sobol' points was found to be {100, 1000, 10000}. This is combined with a function tolerance cutoff of {1e-2, 1e-3, 1e-4}.

The relax user manual (PDF), created 2020-08-26.