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

Reply via email to