Menu

#9 Failure of the 3-site dispersion models when pB and pC are zero.

fixed
None
4.1.0
relax's source code
Relaxation dispersion
2019-03-07
2019-03-05
No

This was discovered by Luca Codutti in the ilsacripante relax fork on GitHub. All details were reported at https://github.com/nmr-relax/relax/pull/6. Further investigation shows that this is not only a 3-site MMQ model issue, but it also affects the 3-site R1rho model.

Discussion

  • Edward d'Auvergne

    This is specifically the issue from https://github.com/nmr-relax/relax/pull/6:

    1st error in grid search
    relax gives RelaxWarning error: invalid value encountered in true_divide during grid search.
    nan data give inf values during simplex minimization which break the minimization.

    The trace back brings you to the ns_mmq_3site.py function, and it turns out that the error is straightforward:
    pB_pC is defined in relax/lib/dispersion/ns_mmq_3site.py as

    pB_pC = pB + pC k_BA = pA * kex_AB / pA_pB k_AB = pB * kex_AB / pA_pB k_CB = pB * kex_BC / pB_pC k_BC = pC * kex_BC / pB_pC

    As pC is defined as 1 -pA -pB, you get a divide by 0 error 3 lines later if pA is set to 1 and pB to 0 in the grid search. For this reason I added a pB_lower and a pA_upper function in /specific_analyses/relax_disp/parameter_object.py which specifically sets pB_lower to 0.01 if 3site exchange models are used and pA_upper to 0.99. This is a workaround, if you guys have a better solution I would be glad.

     

    Last edit: Edward d'Auvergne 2019-03-05
  • Edward d'Auvergne

    • status: open --> fixed
     
  • Edward d'Auvergne

    This was fixed in commit 141031.

     

Log in to post a comment.