I'm not sure what the best behaviour would be as we don't have much to
test against.  As all the parameters will be the same for AB and BC, I
don't think pB will change in a grid search.  Or it will change but
that pB and pC are convoluted together, as they represent the same
state as they have the same parameter values and you have an infinite
set of pB, pC solutions.  So maybe it is best to calculate it as you
said and hence set pC to zero to allow the two states to differentiate
during optimisation.  But I could be wrong.  As long as there is a
sentence in the auto-analysis part of the dispersion chapter of the
manual explaining the behaviour, either might be ok.

Cheers,

Edward



On 20 August 2014 09:27, Troels Emtekær Linnet <[email protected]> wrote:
> I can also let it be.
>
> One parameter left for Grid Search should be okay. :-)
>
> Best
> Troels
>
> 2014-08-19 18:44 GMT+02:00 Troels Emtekær Linnet <[email protected]>:
>> I can set it 1 - pA?
>>
>> Best
>> Troels
>>
>> 2014-08-19 18:13 GMT+02:00 Edward d'Auvergne <[email protected]>:
>>> 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

Reply via email to