That would be the correct behaviour without optimisation. Hmmm, what was pB set to in this case originally? Maybe we need to set pB to 0 to start with, and then let it optimise away from this. What do you think?
Regards, Edward On 19 August 2014 18:06, Troels Emtekær Linnet <[email protected]> wrote: > Hi Edward. > > 'r2', 'pA', 'dw', 'kex' > > I then read this as: > > self.assertEqual(par_dic['r2'], 'r2') > self.assertEqual(par_dic['pA'], 'pA') > self.assertEqual(par_dic['dw_AB'], 'dw') > self.assertEqual(par_dic['kex_AB'], 'kex') > self.assertEqual(par_dic['pB'], None) > self.assertEqual(par_dic['dw_BC'], 'dw') > self.assertEqual(par_dic['kex_BC'], 'kex') > self.assertEqual(par_dic['kex_AC'], 'kex') > > Best > Troels > > 2014-08-19 17:42 GMT+02:00 Edward d'Auvergne <[email protected]>: >> Hi, >> >> I saw that the code has evolved to do this. The original idea and >> implementation was to set states B and C to the same values of the >> 2-state model parameters and then let them drift apart. This was >> mentioned in the manual. This is not great, but the alternative of >> performing a grid search on 'dw_AB', 'kex_AB', 'pB', 'dw_BC', >> 'kex_BC', 'kex_AC' is worse - this grid search is just impossibly long >> if you choose a reasonable number of grid increments. Being a >> multi-minima problem also invalidates this. The grid search and local >> optimisation is only for single minimum problems. When multiple >> minima are present, then global algorithms are required (the main ones >> are simulated annealing and genetic algorithms, neither of which are >> present in minfx yet and hence relax). Therefore setting B and C to >> the same thing is not too unreasonable considering the alternative >> issues. >> >> The same thing was done for the '* full' models. The value of R20 was >> copied to R20A and R20B and then the two allowed to drift apart. This >> is also an incredibly difficult optimisation problem with possible >> multiple minima. >> >> There is no perfect solution for the R20A != R20B or 3-site models yet. >> >> Regards, >> >> Edward >> >> >> >> On 19 August 2014 17:21, Troels Emtekær Linnet <[email protected]> wrote: >>> Hi Edward. >>> >>> >>> Just to confirm. >>> >>> If the model is: MODEL_PARAMS_NS_R1RHO_3SITE >>> And the nested model is: MODEL_PARAMS_NS_R1RHO_2SITE >>> >>> The possible parameters for conversion are: >>> self.assertEqual(par_dic['r2'], 'r2') >>> self.assertEqual(par_dic['pA'], 'pA') >>> self.assertEqual(par_dic['dw_AB'], None) >>> self.assertEqual(par_dic['kex_AB'], None) >>> self.assertEqual(par_dic['pB'], None) >>> self.assertEqual(par_dic['dw_BC'], None) >>> self.assertEqual(par_dic['kex_BC'], None) >>> self.assertEqual(par_dic['kex_AC'], None) >>> >>> This means, that MODEL_PARAMS_NS_R1RHO_3SITE would start to Grid Search: >>> 'dw_AB', 'kex_AB', 'pB', 'dw_BC', 'kex_BC', 'kex_AC' >>> >>> Do we agree on this? >>> >>> Best >>> Troels >>> >>> >>> ---------- Forwarded message ---------- >>> From: <[email protected]> >>> Date: 2014-08-19 16:07 GMT+02:00 >>> Subject: r25077 - /trunk/docs/latex/dispersion.tex >>> To: [email protected] >>> >>> >>> Author: bugman >>> Date: Tue Aug 19 16:07:37 2014 >>> New Revision: 25077 >>> >>> URL: http://svn.gna.org/viewcvs/relax?rev=25077&view=rev >>> Log: >>> Added a table for dispersion model nesting in the auto-analysis to the >>> manual. >>> >>> This adds the ideas discussed in the thread >>> http://thread.gmane.org/gmane.science.nmr.relax.devel/6684. >>> >>> >>> Modified: >>> trunk/docs/latex/dispersion.tex >>> >>> Modified: trunk/docs/latex/dispersion.tex >>> URL: >>> http://svn.gna.org/viewcvs/relax/trunk/docs/latex/dispersion.tex?rev=25077&r1=25076&r2=25077&view=diff >>> ============================================================================== >>> --- trunk/docs/latex/dispersion.tex (original) >>> +++ trunk/docs/latex/dispersion.tex Tue Aug 19 16:07:37 2014 >>> @@ -1689,8 +1689,9 @@ >>> For the cluster specific parameters, i.e.\ the populations of >>> the states and the exchange parameters, an average value will be used >>> as the starting point. >>> For all other parameters, the $\Rtwozero$ values for each spin >>> and magnetic field, as well as the parameters related to the chemical >>> shift difference $\dw$, the optimised values of the previous run will >>> be directly copied. >>> \item[Model nesting:] If two models are nested, then the >>> parameters of the simpler will be used as the starting point for >>> optimisation of the more complex. >>> - The currently supported nested model pairs are `LM63' and `LM63 >>> 3-site', `CR72' and `CR72 full', `CR72' and `MMQ CR72', `NS CPMG >>> 2-site 3D' and `NS CPMG 2-site 3D full', and `NS CPMG 2-site star' and >>> `NS CPMG 2-site star full'. >>> - In these cases, the $\RtwozeroA$ and $\RtwozeroB$ parameter >>> values are set to the simpler model $\Rtwozero$ value and the grid >>> search is bypassed. >>> + The currently supported nested model sets are presented in >>> Table~\ref{table: dispersion model nesting} on page~\pageref{table: >>> dispersion model nesting}. >>> + The models are optimised in the order presented in that table. >>> + In some cases, the $\RtwozeroA$ and $\RtwozeroB$ parameter >>> values are set to the simpler model $\Rtwozero$ value and the grid >>> search is bypassed. >>> \item[Model equivalence:] When two models are equivalent, the >>> optimised parameters of one model can be used as the starting point of >>> the other rather than performing a grid search. >>> This is used in the auto-analysis for avoiding the grid search >>> in the numeric models. >>> The optimised `CR72' model is used for the `NS CPMG 2-site >>> expanded', `NS CPMG 2-site 3D', and `NS CPMG 2-site star' models. >>> @@ -1722,6 +1723,103 @@ >>> If you are a power user, you are free to use all of the relax user >>> functions, the relax library, and the relax data store to implement >>> your own protocol. >>> If you wish, the protocol can be converted into a new auto-analysis >>> and distributed as part of relax. >>> The relax test suite will ensure the protocol remains functional for >>> the lifetime of relax. >>> + >>> +\begin{landscape} >>> +\begin{center} >>> +\begin{small} >>> + >>> +% The longtable environment. >>> +\begin{longtable}{ll} >>> + >>> +% Caption. >>> +\caption{Model nesting for the relaxation dispersion auto-analysis.} >>> + >>> +% Header. >>> +\\ >>> +\toprule >>> +Model & Nested models\footnotemark[1] \\ >>> +\midrule >>> +\endhead >>> + >>> +% Footer. >>> +\bottomrule >>> +\endfoot >>> + >>> +% Label. >>> +\label{table: dispersion model nesting} >>> + >>> + >>> +% Experiment independent models. >>> +\\[-5pt] >>> +Base models \\ >>> +\cline{1-1} >>> +$\Rtwoeff/\Ronerhoprime$ & - \\ >>> +No Rex & - \\ >>> + >>> +% CPMG-type models. >>> +\\[-5pt] >>> +Single quantum (SQ) CPMG-type \\ >>> +\cline{1-1} >>> +LM63 & - \\ >>> +LM63 3-site & LM63 \\ >>> +CR72 & NS CPMG 2-site 3D, NS CPMG 2-site >>> star, NS CPMG 2-site expanded, B14 \\ >>> +CR72 full & NS CPMG 2-site 3D full, NS CPMG >>> 2-site star full, B14 full, NS CPMG 2-site 3D, \\ >>> + & NS CPMG 2-site star, NS CPMG >>> 2-site expanded, B14, CR72 \\ >>> +IT99 & - \\ >>> +TSMFK01 & - \\ >>> +B14 & NS CPMG 2-site 3D, NS CPMG 2-site >>> star, NS CPMG 2-site expanded, CR72 \\ >>> +B14 full & NS CPMG 2-site 3D full, NS CPMG >>> 2-site star full, CR72 full, NS CPMG 2-site 3D, \\ >>> + & NS CPMG 2-site star, NS CPMG >>> 2-site expanded, B14, CR72 \\ >>> +NS CPMG 2-site expanded & NS CPMG 2-site 3D, NS CPMG 2-site >>> star, B14, CR72 \\ >>> +NS CPMG 2-site 3D & NS CPMG 2-site star, NS CPMG >>> 2-site expanded, B14, CR72 \\ >>> +NS CPMG 2-site 3D full & NS CPMG 2-site star full, B14 >>> full, CR72 full, NS CPMG 2-site 3D, NS CPMG 2-site star, \\ >>> + & NS CPMG 2-site expanded, B14, CR72 \\ >>> +NS CPMG 2-site star & NS CPMG 2-site 3D, NS CPMG 2-site >>> expanded, B14, CR722 \\ >>> +NS CPMG 2-site star full & NS CPMG 2-site 3D full, B14 full, >>> CR72 full, NS CPMG 2-site 3D, NS CPMG 2-site star, \\ >>> + & NS CPMG 2-site expanded, B14, CR72 \\ >>> + >>> +% SQ, ZQ, DQ and MQ CPMG-type models. >>> +\\[-5pt] >>> +MMQ (SQ, ZQ, DQ, \& MQ) CPMG-type \\ >>> +\cline{1-1} >>> +MMQ CR72 & NS MMQ 2-site \\ >>> +NS MMQ 2-site & MMQ CR72 \\ >>> +NS MMQ 3-site linear & NS MMQ 2-site, MMQ CR72 \\ >>> +NS MMQ 3-site & NS MMQ 3-site linear, NS MMQ >>> 2-site, MMQ CR72 \\ >>> + >>> +% R1rho-type models. >>> +\clearpage >>> +\\[-5pt] >>> +$\Ronerho$-type \\ >>> +\cline{1-1} >>> +M61 & - \\ >>> +M61 skew & - \\ >>> +DPL94 & - \\ >>> +DPL94 $\Rone$ fit & DPL94 \\ >>> +TP02 & MP05, TAP03 \\ >>> +TP02 $\Rone$ fit & MP05 $\Rone$ fit, TAP03 $\Rone$ fit \\ >>> +TAP03 & MP05, TP02 \\ >>> +TAP03 $\Rone$ fit & MP05 $\Rone$ fit, TP02 $\Rone$ fit \\ >>> +MP05 & TAP03, TP02 \\ >>> +MP05 $\Rone$ fit & TAP03 $\Rone$ fit, TP02 $\Rone$ fit \\ >>> +NS $\Ronerho$ 2-site & MP05, TAP03, TP02 \\ >>> +NS $\Ronerho$ 2-site $\Rone$ fit & MP05 $\Rone$ fit, TAP03 $\Rone$ >>> fit, TP02 $\Rone$ fit \\ >>> +NS $\Ronerho$ 3-site linear & NS $\Ronerho$ 2-site, MP05, TAP03, TP02 >>> \\ >>> +NS $\Ronerho$ 3-site & NS $\Ronerho$ 3-site linear, NS >>> $\Ronerho$ 2-site, MP05, TAP03, TP02 \\ >>> + >>> +\footnotetext[1]{The nested models are ordered by preference. >>> +The earliest model in the list which has been optimised in the >>> auto-analysis will be used as the nested model. >>> +For example for the 'B14 full' model, the 'CR72 full' model is the >>> first preference, followed by 'B14', then the final fall back is >>> 'CR72' is neither 'CR72 full' or 'B14' have been optimised. >>> +If none of the nested models have been optimised, the grid search >>> will be performed. >>> +In this example, 'CR72 full' is preferred as it has perfect parameter >>> nesting -- all parameters of 'B14 full' are found in 'CR72 full'. >>> +The B14 and CR72 are fallbacks, and for these R20A and R20B are >>> copied from R20 so they start optimisation as R20A == R20B. >>> +Hence 'CR72 full' whereby R20A != R20B is a much better starting >>> point as R20A and R20B have been optimised to different values. >>> +But because of the large model instability in the 'CR72 full' model, >>> you may wish to instead start with 'B14'.} >>> + >>> +\end{longtable} >>> +\end{small} >>> +\end{center} >>> +\end{landscape} >>> >>> >>> % Dispersion curve insignificance. >>> >>> >>> _______________________________________________ >>> relax (http://www.nmr-relax.com) >>> >>> This is the relax-commits mailing list >>> [email protected] >>> >>> To unsubscribe from this list, get a password >>> reminder, or change your subscription options, >>> visit the list information page at >>> https://mail.gna.org/listinfo/relax-commits >>> >>> _______________________________________________ >>> relax (http://www.nmr-relax.com) >>> >>> This is the relax-devel mailing list >>> [email protected] >>> >>> To unsubscribe from this list, get a password >>> reminder, or change your subscription options, >>> visit the list information page at >>> https://mail.gna.org/listinfo/relax-devel _______________________________________________ relax (http://www.nmr-relax.com) This is the relax-devel mailing list [email protected] To unsubscribe from this list, get a password reminder, or change your subscription options, visit the list information page at https://mail.gna.org/listinfo/relax-devel

