Hi Paul, Great to hear from you again! I hope all is well over there in Vienna. Sorry for the super late reply - I've been flat out lately. As for your questions:
On Wed, 26 Oct 2022 at 17:44, Paul SCHANDA <[email protected]> wrote: > Hi, > > I am running into troubles with R1rho dispersion fits. In brief, we get > totally unrealistic values for phi_ex (>10000) and k_ex (<1 s-1). > It seems that the default parameter limits for phi_ex are such that there is > only a lower bound (0) but no upper bound. This can result in physically > totally meaningless situations, like a strong R1rho dispersion profile, with > a fitted exchange rate constants of 0.2 s-1…. > I would like to have some control over the grid search and the analysis. > > My questions: > * does anyone know how to set/change the grid parameter range? Has anyone run > into similar issues? For the initial grid search, in a custom script you can simply pass in a list of numbers for the lower bounds and or upper bounds. This issue is quite common and most people end up reporting that this happens for peaks that are very weak at the very start, so that the fit simply fails no matter what you do. This may not be the case for your data. What would be best is to actually map out the parameter optimisation space and visualise it in 3D. If you install the ancient, yet still very powerful, OpenDX software (the code is still on SourceForge and a number of Linux distributions package it). You can then use the relax dx.map user function to visualise the optimisation space: https://www.nmr-relax.com/manual/dx_map.html We do need to implement other ways of visualising this in relax, for example with mathplotlib which is currently an optional dependency, but that has not materialised. For anyone interested, it should be a pretty easy task to duplicate dx.map to a new mathplotlib.map. > * does anyone have a script to do the analysis without going through the > auto-analysis? The manual is (for me) not useful to design the analysis. The best way is to copy the auto-analysis file itself (auto_analyses/relax_disp.py) and modify that as you see fit. You can have this sitting next to your analysis script (or even copied and pasted inside it) and, instead of importing the auto-analysis with: # relax module imports. from auto_analyses.relax_disp import Relax_disp you can import your modified auto-analysis with: # My module imports. from my_relax_disp_auto_analysis import Relax_disp That way you can go in and add upper (and maybe lower) bounds where the grid search user function is called (self.interpreter.minimise.grid_search()). However I'd first recommend mapping out the optimisation space to see if you have a minimum anywhere in there first. This will save a lot of time. In relaxation dispersion, as far as anyone has seen that I am aware of, the minimisation space is very simple. You have a single very broad quadratic minimum. There are no multi-minima spaces, long twisting tunnels, or banana problems (that's a real thing) in the optimization space. So directly visualising the space is incredibly powerful and will shape your strategy for dealing with the data point. Regards, Edward P. S. If you need upper bounds on optimisation, for now you'll need to modify the relax source code itself. We had plans many years ago to open up this interface via new user functions, however that work never materialised. See the function linear_constraints() in the file specific_analyses/relax_disp/parameters.py for the hard-coded values. _______________________________________________ nmr-relax-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/nmr-relax-users
